Method and system for locating a voice over internet protocol (voip) device connected to a network

ABSTRACT

A method and system for locating a device connected to a network by determining a current network address for the device and comparing the current network address to a network address in a user profile. If the network addresses match, the device is located based on a physical address associated with the network address in the user profile.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No. 13/012,959, filed on Jan. 25, 2011, which is a continuation of U.S. application Ser. No. 10/924,485 filed on Aug. 24, 2004 and patented as U.S. Pat. No. 7,940,746, which issued on May 10, 2011, the entire contents of which are herein incorporated by reference.

FIELD OF THE INVENTION

The present invention relates to methods and systems for locating a device connected to a network, such as to locate a Voice Over Internet Protocol (VoIP) device.

BACKGROUND ART

Voice Over Internet Protocol (VoIP) or Internet Protocol (IP) Telephony is a technology that allows a user to make a telephone call over the Internet or a dedicated network in IP packets, instead of over dedicated voice transmission lines.

With a VoIP service, it is possible for a user to move their VoIP phone to virtually any IP network and have the ability to make and receive calls at their home phone number, which is commonly referred to as a personal telephone number (TN). This is, in fact, one of the benefits of VoIP service, whereby for example a user can take their VoIP phone with them to a hotel with broadband Internet service and have their home phone ring in their hotel room. By contrast, traditional telephone service is tied to a specific location by nature of the circuit-based telephone network.

The problem with this new capability of VoIP, however, is that the traditional approach utilized by emergency services personnel to locate an individual in the event of an emergency 911 call no longer works reliably in VoIP systems. For example, a VoIP customer's location is recorded as their billing address and all calls originating from the customer's VoIP phone are assumed to be originating from the home address of the customer. If the customer takes the VoIP phone to a second location, such as a shore vacation home for the weekend, and a life-threatening medical emergency prompts the customer to dial 911, then the 911 call would be routed to the Public Safety Answering Point (PSAP) in the area of the customer's billing address, not their current address at the shore vacation residence.

Some VoIP service providers have attempted to solve this by routing 911 calls on their VoIP network to an intermediate dispatch center that determines which PSAP to route the call to. The intermediate dispatch center includes an operator for answering the emergency 911 call. The operator interrogates the caller to determine their location and then routes the call to the PSAP in the location of the caller. However, this approach can add extra time to the emergency response that can be critical to safety. Moreover, it is a labor intensive and relatively expensive for the service provider to maintain.

SUMMARY OF THE INVENTION

It is, therefore, an object of the present invention to provide a method and system for locating a VoIP customer.

The present invention contemplates a number of features for locating a VoIP customer, including a processing unit configured for operation on a network used to support VoIP calls. The processing unit preferably includes a processor and a memory configured for locating a VoIP customer by locating a VoIP device used by the customer.

The processing unit is configured to determine a current network address for the VoIP device on the network. Once the current network address is determined, the processing unit is configured to locate a user profile stored on the processing unit that is associated with the VoIP device. The user profile includes at least one physical address associated with a network address so that the processing unit can determine if the current network address matches with any of the network addresses in the user profile. The processing unit then determines a location of the VoIP device to be at the physical address associated with the network address that matches the current network address of the VoIP device.

The processing unit can be configured to provide the location of the VoIP device to a public safety answering point (PSAP) in the event of an emergency, such as if the VoIP customer using the VoIP device is making an emergency call.

One advantage of the present invention is that it permits emergency services to be provided without maintaining an emergency services dispatch center. This permits emergency calls to be routed to the appropriate authorities more quickly, leading to increased safety and security for customers, lower cost for the service provider, and better VoIP service features relative to competitors.

Another advantage of the present invention is that it is IP-network-based such that it can encompass other VoIP devices beyond telephones, such as instant messaging clients, and other real-time communication tools (text, audio, and/or video-based). In this manner, these non-telephone items can be used to make emergency calls over the VoIP system and have the location of the calling party determined.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a network system in accordance with one aspect of the present invention; and

FIG. 2 illustrates a flowchart of a method for determining a location of a device connected to a network in accordance with one aspect of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S)

FIG. 1 illustrates a network system 10 in accordance with one aspect of the present invention. The network system 10 generally includes a first access point 14, a second access point 16, and a network 20 such that data and signals communicated over the network 20 are accessible by connected a network device 24 to one of the access points 14 and 16.

The network device 24 can be any type of computer or other item that is capable of network communications, such as computers, servers, personal digital assistants (PDAs), and the like. In particular, the present invention contemplates that the network device 24 is a Voice Over Internet Protocol (VoIP) device that is configured to make VoIP telephone calls over the network 20. In support thereof, the system 10 further includes a VoIP unit 26, a VoIP emergency location application (VELA) or processing unit 28, and a Public Safety Answering Point (PSAP) 30.

The VoIP device 24 can relate to any device that is capable of making VoIP calls. Such devices can include a number of features, including a telephone with an analog terminal adapter (ATA), a software-based Session Initiation Protocol (SIP) phone, a stand-alone or embedded Message Transfer Agent (MTA) device, a videophone (whether hardware-based or software-based), a wireless phone (generally cellular phones), a Personal Digital Assistant (PDA) with VoIP software, and the like. Preferably, the VoIP device 24 includes a unique personal telephone number that allows the device 24 to receive VoIP telephone calls anytime that it is connected to the network 20.

The first and second access points 14 and 16 are nodes or other features that are configured to connect the network device 24 to the network 20. The system 10 shown in FIG. 1 only indicates two access points 14 and 16, but it is contemplated that the system 10 may include any number of access points in any number of geographical areas. Preferably, a network address, such as an IP address, is associated with each access point to identify its location on the network 20.

The network 20 generally relates to any configuration that permits network communication and VoIP calls, such as through the exchange or transfer of electronic signals and packets over private IP networks, the Internet, or public switching telephone network (PSTN). It can include servers, databases, softswitches, and the like which function to enable, route, and/or control voice, video, and text-based communications and can include items generally described as VoIP softswitches, PacketCable Call Management Servers (CMS), VoIP call servers, IP Public Branch Exchanges (PBXs), SIP Proxy servers, SIP Registrar servers, SIP switches, and the like.

The PSAP 30 generally relates to a dispatch office that routes incoming 911 calls, or directly dispatches a public service department, such as a fire, police, or other emergency department. Preferably, the PSAP can receive calls over a PSTN and electronically over the Internet or other IP networks, or through other communications means, such as satellite or other wireless communication. In particular, the PSAP may be an enhanced 911 (E911) dispatch center that is capable of exchanging signals through IP-network-based applications, such as instant messaging clients, real-time communication tools (text, audio, and/or video-based), and other non-telephone clients.

The VELA 28 is configured in accordance with the present invention to communicate with the network 20 and to determine the location of a user on the network 20 based on a location of the network device 24, such as by determining whether the network device 24 is at the first access point 14 or the second access point 16. This can be advantageous for locating the user in the event of an emergency, such as when the user makes an emergency 911 call using a VoIP device from one of the access points 14 and 16.

The VELA 28 preferably includes an interface 36 that is configured for exchanging signals and packets with the network 20, such as for communicating with the VoIP device 24 and/or the PSAP 30 by exchanging signals and packets over the network to one or more of the access points 14 and 16. Preferably, the interface 36 includes an Interactive Voice Response (IVR) unit, Text to Speech (TTS), and/or a Speech to Text (STT) unit, which enables the interface 36 to convert speech received by the interface to electronic signals and to similarly output electronic signals to speech, such as to communicate with the user through the VoIP device 24. In particular, the interface 36 is able to output and receive voice and touch-tone signals to and from the VoIP device 24 so that the VELA 28 can communicate verbally with the user through a dialogue and record the responses of the user thereto.

The VELA 28 can be configured to route calls to the PSAP 30 via the PSTN using legacy methods of call networking/termination, to route calls via the public Internet or private Internet Protocol (IP) peering point, and to route calls to multiple interfaces of the PSAP 30, such as a primary interface preference and one or more secondary interfaces, based upon the PSAP's capabilities and preferences or the service provider's preferences. In addition, the VELA 28 can contact the secondary interface if the primary interface is not reachable for some reason, such as network congestion, network failure, etc.

The VELA 28 preferably includes a processor 38 and a memory 40 for controlling operation of the interface 36 and for executing other applications and strategies, which preferably includes a 911 call routing/query response application for transferring 911 calls from the access point to the PSAP associated with a location of the user, as described below in more detail. The VELA 28 can include other optional features, such as a web interface application configured to enable user location configuration, selection, and/or confirmation, and a video/graphic interface application configured to enable user location configuration, selection, and/or confirmation via a textual or graphical interface on a particular type of device (cellular phone screen, video phone screen, etc.).

The VELA 28 can optionally detect the type of network device 24 based upon information derived from its connection to the network 20. When one of these devices with graphical capabilities is used, the VELA 28 can be configured to, instead of initiating an out-dial, initiate a multimedia message to the user's device or present that device with a graphical interface. The user can respond to that message by pressing buttons on their device, clicking on the interface, or otherwise interacting with the graphical user interface or multimedia message. This interface may take several forms in the future but may be HTML-based, XML-based, or VoiceXML-based using today's technologies.

The VoIP unit 26 is a processing unit configured to permit and/or control VoIP communications. It can include any number of features, including memory and processors (not shown) that communicate with the network 20 for executing a VoIP application, such as a VoIP telephone call. In general, the system is configured to route calls to the VoIP device 24 based on the telephone number assigned to it so that a user can receive calls on the telephony device at any access point 14 and 16 on the network 20 that is in communication with the VoIP unit 26.

The system 10 shown in FIG. 1 is only provided for exemplary purposes and is not intended to limit the scope of the present invention. Rather, the present invention contemplates that the system 10 may include more or less features than those shown in FIG. 1. In particular, the VoIP device 24 and each of the access points 14 and 16 are illustrated as separate items, however, the present invention contemplates that an access point may be integrated into the VoIP device 24 and, in addition, that these two items may be further integrated into a fixed or portable communications and/or computing device.

FIG. 2 illustrates a flowchart 50 of a method for locating the network device (VoIP device) when it is connected to a network. The method is advantageous in locating the user in the event of an emergency 911 call from the network device 24 and for routing the emergency 911 call to the PSAP 30 associated with the location of the user.

Block 54 relates to provisioning a user for operation with the VELA. The provisioning can include any number of features, and generally comprises creating and storing a user profile in the database of the VELA. The user profile can be created by an operator inputting the user's information into the VELA, by the user inputting the information themselves, such as through a graphical user interface (GUI) or web page, and/or automatically by querying the VoIP device when it is connected to the network, which is advantageous for determining the IP address and network hops associated with the access point to which the user connects the VoIP device, as it may be difficult for the user or operator to input this information. Optionally, block 54 can be skipped and the user profile can be created dynamically upon connecting the VoIP device to one of the access points.

The user profile preferably identifies the user with a telephone number and includes additional location information, such as a physical address (city, state, zip code, apartment number, etc.) and network address (IP address and network hops) for the access point from which the user intends to connect to the network for making VoIP telephone calls. The network address is associated with the physical address as the physical addresses are more unique than the network addresses. This is because the network addresses may not, by nature of them being shared across what may be a small or large area and one or many people, be at the same location as the user, or at least within a small enough area relative to the access point associated with the user that emergency personnel would be able to locate the user in an emergency. Network addresses may also be dynamically assigned, such that the same physical address will show up at different network addresses over time. The physical location indicates where the user is located when connecting to the access point associated with the current network address so that the user can be located in the event of an emergency 911 call.

Multiple entries can be made in the user profile if the user intends to use the VoIP device at multiple locations on the network. Preferably, a nickname or another unique identifier is provided if the user profile includes multiple residences or locations for the user so that each location can be easily distinguished. For example, the user may intend to use the VoIP device at home, at a beach vacation home, and at work. In which case, the user profile is provisioned with physical and network address for each of the locations.

Block 58 relates to connecting the VoIP device to the network, such as if the user intends to make a call or if the user is merely connecting the device to the network to receive calls, which may occur in the act of turning on or plugging in a device. Upon connecting to the network or in response to a message from the VELA, the VoIP device sends a message to the VELA that includes the telephone number assigned with the VoIP device. The VELA analyzes the message to determine the IP address of the access point to which the VoIP device is connected and to determine any network hops between the access point and the VELA, such as by tracerouting the IP address to determine the network hops. This information is then stored in the memory of the VELA for use in determining a location of the user. Depending upon the results of this transaction, the user may be queried by the VELA to confirm his/her correct physical location, select from a list of locations which may or may not be sorted based upon the VELA's best estimate of the location, or choose to configure a new location in the VELA.

Block 62 relates to determining a current location for the user based on the telephone number and network address determined in block 58. Initially, the VELA uses the telephone number to search the database for a user profile that includes the same telephone number, i.e. to match a user profile with the telephone number. Once the user profile is located, the VELA compares the network address determined in block 58 with the network addresses in the user profile. If one of the network addresses matches, the VELA pulls the associated physical address and controls the interface to contact the user, such as through an out-going call or other message to the user and/or their telephony device. The user is then asked whether the physical address corresponds with the current location of the user. If the user to determine their location. The location is denied, for example, if there is an error during the inputting of the physical location to the user profile, if the user intends to be at a different location but maintains the use of the same access point, and if the user failed to provide a physical address in the user profile. In response to the denial, the VELA interrogates the user further to determine the physical address that they desire to associate with the network address. This information is then stored in the user profile so that it is available the next time the user connects to the network and the current location of the user is noted.

If none of the network addresses in the user profile match the network address determined in block 58, then the user is in an unknown or new location. In which case, the VELA controls the interface to contact the user, such as through an out-going call or message, to create an entry for the unknown network ID. The entry is similar to those described above, in that the user is questioned by the VELA to determine a physical address and nickname for association with the unknown network address. Once the entry is complete, the physical address associated with the new entry is added to the user's profile and noted as the current location of the user.

The dialogue to determine the location of the user, as described above, can take any number of forms. For example, the VELA can be configured to provide the following sequential dialogue:

1. This is the 911 Service Application calling. We were unable to automatically determine your location. Please tell us where your phone is connected so that we can connect your call appropriately in case you have an emergency.

a. Press 1 now if you are calling from “Home.”

i. 1 pressed, You are calling from “Home.”

ii. If this is incorrect, press # to go back to the main menu.

iii. If this is correct, press 1 now or hangup.

i. 1 pressed, You are calling from “Home.”

ii. If this is incorrect, press # to go back to the main menu.

iii. If this is correct, press 1 now or hangup.

iv. If the address of this location has changed, press 2 now to record the new address.

b. Press 2 now if you are calling from “Beach House.”

i. 2 pressed, You are calling from “Beach House.”

ii. If this is incorrect, press # to go back to the main menu.

iii. If this is correct, press 1 now or hangup.

iv. If the address of this location has changed, press 2 now to record the new address. (Speech to Text engine invoked.)

c. Press 3 now if you are calling from “Work.”

i. 3 pressed, You are calling from “Work.”

ii. If this is incorrect, press # to go back to the main menu.

iii. If this is correct, press 1 now or hangup.

iv. If the address of this location has changed, press 2 now to record the new address.

d. Press 4 now if you are calling from a new location.

i. We need a nickname for this location, such as “Home” or “Beach House.” Please speak the nickname of your location now.

ii. We need a house number for this location. Please speak the number now or use your keypad.

iii. We need a street for this location. Please speak the street now.

iv. We need a city for this location. Please speak the city now.

v. We need a State for this location. Please speak the State now.

vi. We need a ZIP Code for this location. Please speak the ZIP Code now or use your keypad. (The ZIP Code could be used to avoid having to ask for the city and state, if desired.)

The VELA can also be configured with a location matching application (LMA) to facilitate locating the user. In general, the LMA is a process of matching network address determined upon connection of the VoIP device to the network addresses in the user profile when the network addresses fails to exactly match, such as if the user is at the same physical location but using a different access point or an access point the utilizes multiple network address. The VELA utilizes the LMA to predictively attempt to match the network address (location of the user) by executing the following logical operations:

1. Does the current network address detected match a network address in the user profile? If so, match the current network address to the corresponding network address in the user profile and dialogue with the user to determine that the physical address associated therewith corresponds with the current location of the user, if not, proceed to next step.

2. VELA performs a traceroute on the current network address and records every hop in the traceroute. Does the first hop of the traceroute match any of the hops (first or otherwise) for the other network addresses in the user profile. If so, match the current network address to the corresponding network address in the user profile and dialogue with the user to determine the physical address associated therewith corresponds with the current location of the user, if not, proceed to next step.

3. Does the second hop of the traceroute match any of the hops in the Location Database for the user. If so, match the current network address to the corresponding network address in the user profile and dialogue with the user to determine the physical address associated therewith corresponds with the current location of the user, if not, proceed to next step with the remainder of the hops recorded by the trace route.

As described above, the LMA utilizes intermediate network hops for the current network address of the user to locate the physical address of the user. This can be advantageous to narrow down a geographical area in which the user is located. For example, the physical address of the user can be approximated by the intermediate network hops if they match with any of the intermediate network hops in the user profile.

Block 66 relates to the user making an emergency 911 call. The emergency call is recognized by the VELA and routed to the appropriate PSAP based upon the location of the user determined in block 62. Each time the user connects their VoIP device to another access point, the process above is repeated to determine the location of the user. As such, anytime the user makes an emergency 911 call the VELA is able to locate the user and route the call to the appropriate PSAP. Preferably, the VELA includes logic or memory maps that facilitate locating the appropriate PSAP. For example, the VELA may include a database of PSAPs that are associated with either the physical address or the network address in the various user profiles.

When a user dials 911, the softswitch routes the call to the VELA, which routes the call to the appropriate PSAP (see PSAP Interface Technical Options below), based upon the user's current location. No call to an intermediate dispatch center is needed. Alternatively, the softswitch could perform a query to the VELA to obtain the current PSAP for the VoIP user's TN, passing this information back to the softswitch and enabling the softswitch to complete the call itself.

While embodiments of the invention have been illustrated and described, it is not intended that these embodiments illustrate and describe all possible forms of the invention. Rather, the words used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the spirit and scope of the invention. 

1. A non-transitory computer-readable storage medium having computer-executable program instructions stored thereon that when executed by a processor, cause the processor to perform: receiving data from a voice over Internet Protocol (VoIP) application running on a device connected to a network; determining a current network address for the VoIP application; searching a database associated with the VoIP application, the database including a plurality of network addresses and a plurality of physical addresses, wherein each of the plurality of physical addresses is associated with at least one of the plurality of network addresses; and when the current network address for the VoIP application matches one of the plurality of network addresses in the database, determining a location of a user of the VoIP application to be at one of the plurality of physical addresses, wherein the one of the plurality of physical addresses is associated with the one of the plurality of network addresses that matches the current network address of the VoIP application.
 2. The non-transitory computer-readable storage medium of claim 1, wherein the VoIP application is configured to support video, data, and voice communications.
 3. The non-transitory computer-readable storage medium of claim 1, wherein the database is a user profile database.
 4. The non-transitory computer-readable storage medium of claim 1, wherein the device comprises a mobile device.
 5. The non-transitory computer-readable storage medium of claim 1, wherein the network comprises an Internet Protocol (IP) network.
 6. The non-transitory computer-readable storage medium of claim 1, wherein the device comprises a videophone.
 7. The non-transitory computer-readable storage medium of claim 1, wherein the device comprises a Session Initiation Protocol (SIP) phone.
 8. The non-transitory computer-readable storage medium of claim 1, wherein the processor further performs: associating a number with the device within the database, the one of the plurality of physical addresses being located based on the number.
 9. The non-transitory computer-readable storage medium of claim 1, wherein the processor further performs: associating a user identifier (ID) with the device within the database, the one of the plurality of physical addresses being located based on the user ID.
 10. The non-transitory computer-readable storage medium of claim 1, wherein the processor further performs: when the current network address for the VoIP application does not match any of the plurality of network addresses in the database, contacting the VoIP application running on the device to determine the location of the user of the VoIP application to be at one of the plurality of physical addresses or a new physical address that is associated with the current network address.
 11. The non-transitory computer-readable storage medium of claim 10, wherein the processor further performs: when the new physical address is determined, storing information related to an association between the new physical address and the current network address in the database.
 12. The non-transitory computer-readable storage medium of claim 1, wherein the processor further performs: when the current network address for the VoIP application does not match any of the plurality of network addresses in the database, running a location matching application (LMA) to determine when one of a first set of hops in a first traceroute to the current network address matches one of a second set of hops in other traceroutes to one of the plurality of network addresses stored in the database.
 13. The non-transitory computer-readable storage medium of claim 12, wherein the processor further performs: when the one of the first set of hops in the first traceroute to the current network address matches the one of the second set of hops in the other traceroutes to the one of the plurality of network addresses stored in the database, determining the location of the user of the VoIP application to be at the one of the plurality of physical addresses associated with the one of the plurality of network addresses whose traceroute includes the one of the second set of hops.
 14. The non-transitory computer-readable storage medium of claim 1, wherein the processor further performs: routing the data to one of a plurality of public safety answering points (PSAPs) based on the determined location of the user.
 15. An apparatus comprising: a processor; a memory having stored therein computer executable instructions, that when executed by the processor, cause the apparatus to perform a method of: receiving a first request from an application for location information related to a user of a voice over Internet Protocol (VoIP) application; transmitting the location information to the application, wherein the transmitted location information includes a plurality of physical addresses and a plurality of network addresses, wherein each of the plurality of physical addresses is associated with at least one of the plurality of network addresses; transmitting information related to an emergency; and connecting to one of a plurality of public safety answering points (PSAPs), wherein the one of the plurality of PSAPs is associated with one of the plurality of physical addresses, and wherein the one of the plurality of physical addresses is associated with one of the plurality of network addresses.
 16. The apparatus of claim 15, wherein each of the plurality of physical addresses includes a city, state, and zip code.
 17. The apparatus of claim 15, wherein the processor further performs: when the information related to the emergency is transmitted, receiving a second request for confirmation that a determined one of the plurality of physical addresses is a current location of the user of the VoIP application.
 18. The apparatus of claim 15, wherein the transmitting the location information and the transmitting the information related to the emergency occurs through use of the VoIP application.
 19. The apparatus of claim 15, wherein the emergency occurs at the one of the plurality of physical addresses and the transmitting the information related to the emergency occurs from the one of the plurality of network addresses.
 20. A method comprising: receiving data from a voice over Internet Protocol (VoIP) application running on a device connected to a network; determining a current network address for the VoIP application; searching a database associated with the VoIP application, the database including a plurality of network addresses and a plurality of physical addresses, wherein each of the plurality of physical addresses is associated with at least one of the plurality of network addresses; and when the current network address for the VoIP application matches one of the plurality of network addresses in the database, determining a location of a user of the VoIP application to be at one of the plurality of physical addresses, wherein the one of the plurality of physical addresses is associated with the one of the plurality of network addresses that matches the current network address of the VoIP application.
 21. The method of claim 20, wherein the data is related to an emergency call.
 22. The method of claim 21, routing the emergency call to one of a plurality of public safety answering points (PSAPs) based on the determined location. 